#!/bin/bash

# 生产环境启动脚本
# 使用生产环境配置启动NestJS应用

echo "🚀 启动NestJS生产环境..."

# 设置生产环境变量
export NODE_ENV=production

# 应用配置
export PORT=3000

echo "📋 生产环境配置:"
echo "  NODE_ENV: $NODE_ENV"
echo "  配置来源: 编译时配置 (environment.config.ts)"
echo "  数据库: 本地MySQL (127.0.0.1:3306/nextjs)"
echo "  Redis: 本地Redis服务 (127.0.0.1:6379)"
echo "  PORT: $PORT"
echo ""

# 检查Redis服务是否运行
echo "🔍 检查Redis服务状态..."
if systemctl is-active --quiet redis.service; then
    echo "✅ Redis服务正在运行"
else
    echo "⚠️  Redis服务未运行，尝试启动..."
    sudo systemctl start redis.service
    if systemctl is-active --quiet redis.service; then
        echo "✅ Redis服务启动成功"
    else
        echo "❌ Redis服务启动失败"
        exit 1
    fi
fi

# 检查MySQL服务是否运行
echo "🔍 检查MySQL服务状态..."
if systemctl is-active --quiet mysql.service; then
    echo "✅ MySQL服务正在运行"
else
    echo "⚠️  MySQL服务未运行，尝试启动..."
    sudo systemctl start mysql.service
    if systemctl is-active --quiet mysql.service; then
        echo "✅ MySQL服务启动成功"
    else
        echo "❌ MySQL服务启动失败"
        exit 1
    fi
fi

# 检查编译后的文件是否存在
if [ ! -d "dist" ]; then
    echo "📦 编译项目..."
    npm run build:prod
    if [ $? -ne 0 ]; then
        echo "❌ 编译失败"
        exit 1
    fi
fi

# 启动应用
echo "🎯 启动NestJS应用..."
node dist/main.js
